01. Test Doubles

L5 P2 A07 Test Doubles

Test Doubles

Fake A test double that has a "working" implementation of the class, but it's implemented in a way that makes it good for tests but unsuitable for production
Mock A test double that tracks which of its methods were called. It then passes or fails a test depending on whether it's methods were called correctly.
Stub A test double that includes no logic and only returns what you program it to return. A StubTaskRepository could be programmed to return certain combinations of tasks from getTasks for example.
Dummy A test double that is passed around but not used, such as if you just need to provide it as a parameter. If you had a DummyTaskRepository, it would just implement the TaskRepository with no code in any of the methods.
Spy A test double which also keeps tracks of some additional information; for example, if you made a SpyTaskRepository, it might keep track of the number of times the addTask method was called.

For more information on test doubles, check out this article.

The documentation has some great tips about using test doubles in Android.